package com.huanglaoshi.java.io;

import java.io.File;
import org.junit.Test;
public class File01AccessDemo {
	
	/**
	 * 用File访问文件
	 * @throws Exception
	 */
	@Test
	public void file() throws Exception {
		
		//1：绝对路径的方式
		File f01 = new File("D:/io/helloWorldIO.txt");
		System.out.println("        getName:\t"+f01.getName());
		System.out.println("        getPath:\t"+f01.getPath());
		//获取文件的名字  带路径的
		System.out.println("getAbsoluteFile:\t"+f01.getAbsoluteFile());
		System.out.println("getAbsolutePath:\t"+f01.getAbsolutePath());
		System.out.println("      getParent:\t"+f01.getParent());
		
		System.out.println("===============================================");
		//2:相对路径的方式
		File f02 = new File("io/helloWorld.txt");
		System.err.println("        getName:\t"+f02.getName());
		System.err.println("        getPath:\t"+f02.getPath());
		//获取文件的名字  带路径的
		System.err.println("getAbsoluteFile:\t"+f02.getAbsoluteFile());
		System.err.println("getAbsolutePath:\t"+f02.getAbsolutePath());
		System.err.println("      getParent:\t"+f02.getParent());
		
	}
	
	/**
	 * 文件重命名
	 * @throws Exception
	 */
	@Test
	public void renameFlie() throws Exception {
		
		//1：绝对路径的方式
		File f01 = new File("D:/io1521/helloWorldIO.txt");
		//2:相对路径的方式
		File f02 = new File("io/helloWorld23.txt");
		
		//前提条件 f01一定存在 f02一定不存在  结果相当于把f01复制f02所在的目录 并且重命名为helloWorld22.txt
		boolean flag = f01.renameTo(f02);
		System.out.println(flag);
		if(flag){
			System.out.println("文件或者文件夹重命名成功...");
		}else{
			System.out.println("文件或者文件夹重命名失败...");
		}
		
	}
	
	/**
	 * 用File访问文件夹 绝对路径
	 * @throws Exception
	 */
	@Test
	public void directory01() throws Exception {
		File directory = new File("D:/io/directory88");
		System.out.println("        getName:\t"+directory.getName());
		System.out.println("        getPath:\t"+directory.getPath());
		System.out.println("getAbsolutePath:\t"+directory.getAbsolutePath());
		System.out.println("getAbsoluteFile:\t"+directory.getAbsoluteFile());
		System.out.println("      getParent:\t"+directory.getParent());
		
	}
	
	/**
	 * 用File访问文件夹 相对路径
	 * @throws Exception
	 */
	@Test
	public void directory02() throws Exception {
		File directory = new File("io/directory8080");
		System.out.println("        getName:\t"+directory.getName());
		System.out.println("        getPath:\t"+directory.getPath());
		System.out.println("getAbsolutePath:\t"+directory.getAbsolutePath());
		System.out.println("getAbsoluteFile:\t"+directory.getAbsoluteFile());
		System.out.println("      getParent:\t"+directory.getParent());
		
	}
	
	/**
	 * 重命名文件夹 会重命名失败 必须是同1个盘才行！！
	 * 把
	 * @throws Exception
	 */
	@Test
	public void renameDirectory01() throws Exception {
		
		//1：绝对路径的方式
		File f01 = new File("D:/io/directory88");
		//2:相对路径的方式
		File f02 = new File("io3166/directory8088");
		
		//前提条件 f01一定存在 f02一定不存在  结果相当于把f01复制f02所在的目录 并且重命名为helloWorld22.txt
		boolean flag = f01.renameTo(f02);
		System.out.println(flag);
		if(flag){
			System.out.println("文件或者文件夹重命名成功...");
		}else{
			System.out.println("文件或者文件夹重命名失败...");
		}
		
	}
	
	/**
	 * 重命名文件夹  会重命名成功 而且连文件夹下的文件和文件夹一起复制过去
	 * 
	 * 重点：如果还有子文件夹或者相对目录会重命名失败
	 * @throws Exception
	 */
	@Test
	public void renameDirectory02() throws Exception {
		
		//1：绝对路径的方式
		File f01 = new File("D:/io/directory88");
		//2:相对路径的方式
		File f02 = new File("D:/io/directory99");
		
		//前提条件 f01一定存在 f02一定不存在  结果相当于把f01复制f02所在的目录 并且重命名为helloWorld22.txt
		boolean flag = f01.renameTo(f02);
		System.out.println(flag);
		if(flag){
			System.out.println("文件或者文件夹重命名成功...");
		}else{
			System.out.println("文件或者文件夹重命名失败...");
		}
		
	}

}
